<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>实时温度数据</title>
    <style>
        html {
            height: 100%;
            overflow-x:hidden;
            overflow-y:hidden;
        }
        #nowtime {
            display: block;
            color: black;
            width: 300px;
            text-align: center;
            margin: 0 auto;
        }
    </style>

</head>
<body  style="height: 100%; margin: 0">
<h2 id="nowtime">实时温度时间</h2>
<div id="container" style="height: 100%"></div>



<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts@5/dist/echarts.min.js"></script>

<script type="text/javascript">
    var dom = document.getElementById("container");
    var myChart = echarts.init(dom);
    var app = {};
    var option;
    var TempData ="";
    //连接webSocket获取实时温湿度数据
    if (window.WebSocket) {
        var ws = new WebSocket('ws://39.98.198.224:888');
        ws.onopen = function(e) {
            console.log("连接服务器成功");
            ws.send(" ");
        }
        ws.onmessage = function(e) {
            TempData=e.data;
            TempData=TempData.split(" ");

        }
        ws.onclose = function(e) {
            console.log("服务器关闭");
        }
        ws.onerror = function() {
            console.log("连接出错");
        }
    }

    //设置图表
    option = {
        series: [{
            type: 'gauge',
            center: ["50%", "60%"],
            startAngle: 200,
            endAngle: -20,
            min: 0,
            max: 60,
            splitNumber: 12,
            itemStyle: {
                color: '#FFAB91'
            },
            progress: {
                show: true,
                width: 30
            },

            pointer: {
                show: false,
            },
            axisLine: {
                lineStyle: {
                    width: 30
                }
            },
            axisTick: {
                distance: -45,
                splitNumber: 5,
                lineStyle: {
                    width: 2,
                    color: '#999'
                }
            },
            splitLine: {
                distance: -52,
                length: 14,
                lineStyle: {
                    width: 3,
                    color: '#999'
                }
            },
            axisLabel: {
                distance: -20,
                color: '#999',
                fontSize: 20
            },
            anchor: {
                show: false
            },
            title: {
                show: false
            },
            detail: {
                valueAnimation: true,
                width: '60%',
                lineHeight: 40,
                height: '15%',
                borderRadius: 8,
                offsetCenter: [0, '-15%'],
                fontSize: 50,
                fontWeight: 'bolder',
                formatter: '{value} °C',
                color: 'auto'
            },
            data: [{
                value: 0
            }]
        },

            {
                type: 'gauge',
                center: ["50%", "60%"],
                startAngle: 200,
                endAngle: -20,
                min: 0,
                max: 60,
                itemStyle: {
                    color: '#FD7347',
                },
                progress: {
                    show: true,
                    width: 8
                },

                pointer: {
                    show: false
                },
                axisLine: {
                    show: false
                },
                axisTick: {
                    show: false
                },
                splitLine: {
                    show: false
                },
                axisLabel: {
                    show: false
                },
                detail: {
                    show: false
                },
                data: [{
                    value: 0,
                }]

            }
        ],
    };

    setInterval(function() {
        let random = TempData[2];
        option.series[0].data[0].value = random;
        option.series[1].data[0].value = random;
        myChart.setOption(option, true);
        document.getElementById('nowtime').innerText=(TempData[0]+" "+TempData[1]);
    },1600);

    if (option && typeof option === 'object') {
        myChart.setOption(option);
    }

</script>
</body>
</html>